﻿#include "DarkSkin.h"

namespace vl
{
	namespace presentation
	{
		namespace user_resource
		{
			using namespace collections;
			using namespace stream;
			using namespace controls;

			class DarkSkinResourceReader
			{
			public:
				static const vint parserBufferLength = 1720; // 4452 bytes before compressing
				static const vint parserBufferBlock = 1024;
				static const vint parserBufferRemain = 696;
				static const vint parserBufferRows = 2;
				static const char* parserBuffer[2];

				static void ReadToStream(vl::stream::MemoryStream& stream)
				{
					DecompressStream(parserBuffer, true, parserBufferRows, parserBufferBlock, parserBufferRemain, stream);
				}
			};

			const char* DarkSkinResourceReader::parserBuffer[] = {
				"\x64\x11\x00\x00\xB0\x06\x00\x00\x4A\x00\x01\x82\x80\x00\x81\x80\x1E\x29\x65\x73\x2F\x35\x32\x3B\x31\x33\x26\x65\x74\x21\x24\x31\x32\x88\x10\x27\x61\x6D\x25\x3D\x12\x12\x10\x10\x2B\x65\x72\x33\x29\x3F\x36\x34\x8F\x18\x2E\x30\x22\x1E\x1C\x1C\x21\x32\x38\x65\x6E\x24\x31\x93\x31\x35\x85\x17\x2C\xAF\x08\x8A\x8C\x86\x84\x88\x89\x14\x92\xBE\x05\x03\x82\x80\x05\xA2\x01\xC7\x81\x89\x2E\x33\x3A\x88\x37\x0E\x8D\x08\xA0\x02\xAB\xA5\xA7\xA7\x0E\xD3\x34\x39\x3C\x35\x33\x01\xA9\x5F\x81\x84\x2F\x33\x34\x03\xA8\xB3\x01\xD4\x25\x38\x34\x3F\x07\xA8\xB7\x01\xC3\x2C\x21\x33\x3B\x38\x8C\x8D\x08\xE3\x2F\x32\x34\x33\xA8\x01\xB0\x45\xCA\x81\xC2\x84\x21\x32\x39\x35\x53\x6B\x29\x2E\x3E\xBE\xBE\x05\xA9\x11\x10\xC2\x82\x24\xBD\x30\x37\xC5\x65\x63\xA3\x35\x3A\x8E\x34\x3B\x39\x7E\x81\x13\xA2\x07\xB5\xD2\xB0\xC3\x6B\x3E\x53\xAA\xD6\x82\xCC\x97\x21\x25\xF4\x31\x94\x38\x9C\x1E\xAC\xAE\x09\xAC\xB7\xDD\xA0\x16\x35\x8D\x8D\x22\x23\x2E\x86\x31\x35\x38\x36\x3A\x2D\x4F\x36\x21\x92\x39\x37\x99\x95\x3C\x7A\xAC\x3B\xBE\x1B\x12\x23\xEB\xD8\xBC\x2F\x12\xE4\xEA\xEF\xDD\x32\xBA\xDB\xBC\xDE\xDA\x8C\x8F\x11\x29\x96\xE5\x23\x34\x34\x96\x35\xE5\xE5\x72\x4D\xCF\xEC\x9C\xEA\x39\xEA\xEC\xD9\xDB\xEF\x33\xE6\xFC\x1E\x31\x35\xF5\x55\x70\x0C\x0C\x37\x01\x13\x13\x10\xDA\x7F\x71\x82\x77\xE2\x60\x7C\x80\x6E\x73\x39\x4E\x6A\x5F\x06\x13\x55\x85\x40\x42\x35\x14\x1C\x1D\x25\x4D\x6E\x87\x60\x48\x42\x6A\x64\x67\xB3\x5F\x86\x88\x00\x68\x45\x59\x88\x13\x69\x0E\x57\x8B\x87\x29\x83\x49\x89\x13\x2D\xA3\x1F\x8A\x87\x17\x85\x59\x8E\x14\x69\x22\x12\x19\x87\x37\x94\x86\x86\x40\x53\x23\x12\x1F\x7E\x6C\x01\x9E\x5C\x60\x03\x40\x64\x15\x18\x62\x0A\x93\x55\x02\x53\x82\x44\x17\x1B\xFB\x4E\x5D\x70\x1C\x52\x88\x59\x8F\x40\x39\x97\x1B\x60\x19\x6F\x37\x1D\x95\x51\x0C\x13\x59\x99\x40\x47\x21\x13\x1B\x11\x31\x70\x6E\x1A\x19\x69\x27\x11\x92\x68\x48\x4C\x92\x40\x60\x43\x30\x1C\x97\x54\x44\x79\x93\x55\x55\x45\x44\xAD\x9C\x1C\xB0\x6D\x10\x1E\x1C\x09\x73\x15\x18\x19\x14\x13\x51\xA7\x69\x87\x49\x6B\x63\x4E\x0B\x4D\x45\x1A\x0B\x63\x3E\x9A\x9D\x40\x31\x82\x49\x8B\x5D\x65\x02\x63\x42\x88\xA8\x56\xAE\x1B\xA7\x54\x43\xA2\x42\x13\x7B\x6D\x11\x18\x1B\x4C\x63\x1C\x19\x1D\x33\x50\x03\x56\xAE\x01\x6E\x0E\x0B\x0B\xBE\x80\xBF\xAD\x9B\x63\x15\x19\x12\x0B\x68\x2C\xA1\x64\x52\xCB\x80\x08\x42\x19\x5D\x6B\x7D\x79\xAD\xB7\xB3\x49\x0F\x54\xD7\xBD\xAF\xAD\xB0\xC1\x8F\xB1\xB4\x7B\x25\x6F\x04\x15\x1E\x30\x6E\x43\x1E\x91\x69\x30\x1C\x86\x48\x2F\x07\x15\x1D\x1A\xDE\xAA\x70\xBA\x1B\x50\x37\xA7\x1B\x62\xC8\xAC\xAB\x98\x9A\x44\x99\xAE\x42\x11\xFB\x73\x42\x1F\x97\x02\x79\x83\x16\xBF\x65\x3E\x5B\x03\x54\x0B\xC1\x40\x14\xA3\x7A\x4A\xA9\x19\x57\x7D\x53\x58\x9E\x8A\x6F\x59\xC1\x5F\x5C\x75\x64\xA9\x5F\x5E\x64\x05\x1A\xC5\x51\x70\x40\x04\x47\x61\x73\x0A\x6E\x1A\x0E\x3A\x14\x18\x19\x19\x1A\x58\x03\x56\xCC\x01\x67\xCB\x19\xCA\x8B\x6C\xC9\x87\x86\x25\x6A\x5A\xA3\x5C\xB2\x5A\x03\x56\xD0\x35\xE8\x68\xCF\xCA\x3A\x03\x1F\xCB\x18\x6B\x02\x1F\x18\x1E\x3E\xF0\x10\xD1\x19\x1D\x13\x55\xD5\xD1\x28\xEA\xCC\xCA\x14\x13\x64\x4B\xCC\x87\x6E\x11\xD3\xD7\x07\x53\x64\xD8\xD7\xCD\x5A\xFA\x03\x89\x67\x74\x0C\x10\x96\x65\x62\xD5\x45\x19\x08\x53\x74\xD7\xDB\xD1\x2C\xEB\xD3\x6E\x5A\x6C\x4E\xD0\xD4\xCC\x52\xF2\xD0\x0B\x54\x83\xF7\xD9\xDA\xDE\x9E\x56\x16\x4F\x1D\x21\x71\xD1\xD3\xD0\x02\x76\xC8\xDD\xD2\x6F\x2D\x1F\x8E\xDF\x8E\xE5\x14\x0B\x54\x9B\xC6\xE9\xCE\x0E\x45\x38\x10\x1D\x18\x32\x4B\x67\x1A\x4B\x7A\x72\x15\x47\x5E\x99\xC5\xE5\x52\xEB\x92\xE9\xD9\x12\x6C\x6D\x14\x6C\xD3\x19\x47\xB5\x12\x4D\xE6\x26\x13\x5D\xEE\xE7\x48\xEC\x8E\x52\xE2\x65\x37\x10\x6F\xAD\x6D\x2E\x18\x11\x19\x13\x4D\xE0\xE3\xD4\x44\xC5\x51\xF5\xEC\x9F\xC2\xF4\x1C\xF1\x77\x19\xE1\xF7\x40\xD3\xC6\xD9\xD8\xDF\x6D\xED\x84\x1E\xF6\x90\xC0\xFC\xC8\x15\x8C\xA5\x18\xF5\xE6\x1C\x13\x5D\xFA\xF9\x6A\xF2\xDF\xD5\xCF\xCF\xF2\xDF\xF9\x51\xF7\xD4\xF8\xD1\x61\xB2\x50\x19\x18\xD3\xCE\x7F\x66\xDC\x5B\x72\x21\xEE\x59\x6F\x73\x47\x19\x74\x1C\x18\x75\x7E\xD9\x17\x03\x2A\x0F\x90\x7E\xDB\x62\x00\x6F\x06\x94\x6E\x6A\x91\x7E\x7B\xE7\x53\x08\x0D\xBD\x34\x0B\x33\x74\x0B\x09\x19\x79\x09\x72\x11\x13\x2E\x84\xF0\x7C\x46\x8F\x25\x23\x0A\xA9\x69\x0C\x0E\x41\x11\x3D\x99\x19\x76\x6D\xA2\x35\x82\x7F\x5B\x7D\x47\x8F\x6E\x03\x7F\xA6\x19\x75",
				"\x05\x53\x20\x89\x0A\xBA\x85\x25\x36\x6C\x0D\x2B\x72\x19\x0C\x11\x47\x40\x0E\x32\x77\x0C\x87\x1A\x40\x6D\xE6\x27\x03\x2A\x2A\x83\x8B\x85\x6E\x06\x88\x12\xF9\x03\x76\x98\x56\x7C\x86\x65\x79\x83\x01\xC8\x6A\x85\x1D\x9A\x89\x24\x24\x96\x81\x0A\x53\x2B\x8D\x2B\xA6\x8A\x81\xA1\x63\x76\x4C\x3D\x89\x72\xBB\x45\x2E\x8E\x38\x9A\x05\x19\xC5\x8A\x80\x88\x2E\x0D\x0E\x99\x77\x69\x51\x02\x99\x8F\x3D\x99\x8A\x81\x75\x95\x6E\x18\xE8\x6F\x72\x43\x89\x0A\x2F\x6E\x13\x81\x05\x82\x82\x37\x11\x13\x2E\x92\x6E\x85\x26\xDB\x72\x07\x0D\x32\x34\x8E\x82\x2B\x13\x29\x28\x99\x91\x92\xC3\x1D\x93\x89\x6F\x0D\x89\x99\x50\x8C\x67\xB0\x56\x80\x05\x53\x30\x94\x29\x9B\x9D\x93\x16\x97\x34\x0E\x9F\x94\x91\x19\x18\x95\x28\x5E\x85\x94\x88\x6E\x13\x0A\xAC\x47\x89\x97\xC0\x72\x33\x94\x45\x28\x9B\x2F\xD8\x82\x99\x59\x6C\x08\x95\xAA\x8F\x89\x31\xD3\x6F\x77\xA2\x15\x9B\x99\x3B\x8D\x9B\x11\x8F\x9A\x93\xB7\x6C\x09\x73\xB2\x85\x29\x38\xD8\x9C\x85\x61\xAC\x0E\x96\x2F\x93\x9A\xDC\x56\x85\x28\x76\xA4\x99\x6C\x58\x4C\x0E\x96\x69\x5B\x79\xE6\x72\x09\x73\x25\x13\x29\x3E\xA4\x97\x4B\x2C\x74\x0B\x4B\x7E\x80\x92\x05\xA8\x85\x28\x82\xAF\x9D\x9F\xF2\x9F\x9D\xBA\x73\x09\x73\xCE\x45\x2E\xA1\x79\x8E\x68\xCF\x6D\x05\x49\x23\x44\x99\x8A\xF4\x7A\x95\x0D\x83\x27\x86\x0D\x88\x68\x09\x15\xA8\x48\x12\x24\x74\x0D\xAE\x19\x71\x03\x53\x28\xA4\xFC\x20\xA6\x48\x24\x64\x78\x29\x06\x8C\x93\x47\xE8\x7E\x4D\x35\x01\x86\x98\x65\x04\xA3\x40\x06\xAE\xA2\x96\x4C\x0D\x0C\x66\x14\x0D\x48\x97\xAD\x95\x40\x98\x80\x7E\x0F\x6F\x0C\xEE\x0D\x54\x33\x7B\x96\x84\x97\x03\x3E\x95\x4F\xFA\x85\x4E\x34\x02\xAD\xA5\x44\xB2\x8A\x05\xF7\x73\x21\xFC\x53\xAB\xA8\x6C\x0B\x7E\x05\xF6\x83\x20\x3C\x93\xAF\x4A\x70\x00\xAE\x3A\xB2\x3B\xA2\x81\x1D\xA3\x8C\x2C\x76\x08\x58\xA3\xA2\x26\x93\x96\x82\xA5\x45\x38\xAD\x1E\xF2\xA8\xAB\x6F\x96\x84\x80\x01\x31\xA7\xE4\x56\x04\xA6\x00\x8E\xAA\x97\x64\xA2\x22\x59\xF0\xAD\x64\x28\x75\x9A\x60\x6B\xA5\x0F\x06\x53\x23\xB2\xF8\x4F\x4A\x0C\x8F\xB7\xA7\xD4\x15\x03\x2A\xCE\x96\xB0\x4A\x60\x88\x2B\x5B\xB2\xAC\x65\x80\x8D\xA9\xB2\xAE\x63\x20\xEC\x53\xA1\xA1\x2E\xB5\x70\xA3\xAE\x9A\x96\x07\x53\x23\xB6\xF8\x41\xA0\x9D\x1B\x5A\xB2\xDC\x7B\x95\x28\xDE\xB9\x88\xA1\xF3\x89\xAE\x0B\xB0\x82\x87\xEC\x63\xAA\x91\x96\xB1\x9D\x70\x91\xBD\x8D\xA2\x0D\xBF\xB7\xCA\xAA\xA0\x1C\x50\x9E\x88\x56\x9A\xA8\xB1\xC8\xA6\x67\x59\xD1\xBB\x4A\xA6\x01\xA1\xB4\x36\x8B\x93\xE4\x40\xB2\xBB\xEF\x96\x85\x9A\x03\x37\x9B\x76\xFE\x9B\x4A\xDC\x8C\xBC\x8D\xE2\xBF\x78\x77\xE9\x58\xB6\xD9\x32\x0E\xBB\x31\x22\xA2\x2E\xD0\xA2\x20\xA9\x8C\xB4\xBC\xED\xA3\xBA\x7D\x99\x75\xB3\xA2\x05\xC0\xBA\xEC\xA9\x5C\x78\x9C\xA1\xBF\xCF\x43\x0D\x0E\x4E\x35\x72\x9C\x7F\x9B\x3F\xCC\x7C\xB9\x20\xFE\xA4\xB5\xD2\x10\xCC\x43\x36\x06\x0A\x75\x1A\x22\x4E\x4C\x33\x8F\xA9\x4B\x8D\xC0\x69\x53\x19\x0E\x53\x30\x6F\xC3\xDF\x22\xC6\x89\x27\xA9\xA7\x89\xE7\x71\x9E\xF6\x30\x09\x73\x7E\x20",
				};

			class DarkSkinResourceLoaderPlugin : public Object, public IGuiPlugin
			{
			public:

				GUI_PLUGIN_NAME(GacGen_DarkSkinResourceLoader)
				{
					GUI_PLUGIN_DEPEND(GacUI_Res_Resource);
					GUI_PLUGIN_DEPEND(GacUI_Res_TypeResolvers);
#ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA
					GUI_PLUGIN_DEPEND(GacUI_Instance_Reflection);
					GUI_PLUGIN_DEPEND(GacUI_Compiler_WorkflowTypeResolvers);
#endif
				}

				void Load(bool controllerUnrelatedPlugins, bool controllerRelatedPlugins)override
				{
					if (controllerRelatedPlugins)
					{
						List<GuiResourceError> errors;
						MemoryStream resourceStream;
						DarkSkinResourceReader::ReadToStream(resourceStream);
						resourceStream.SeekFromBegin(0);
						GetResourceManager()->LoadResourceOrPending(resourceStream, GuiResourceUsage::InstanceClass);
					}
				}

				void Unload(bool controllerUnrelatedPlugins, bool controllerRelatedPlugins)override
				{
				}
			};
			GUI_REGISTER_PLUGIN(DarkSkinResourceLoaderPlugin)
		}
	}
}
